package com.gite.nouette.admin.implementation.integrator.factory;

import com.gite.nouette.admin.contract.integrator.factory.IFactoryView;
import com.gite.nouette.admin.contract.view.IVAdmin;
import com.gite.nouette.admin.contract.view.IVCommand;
import com.gite.nouette.admin.contract.view.IVContainerModule;
import com.gite.nouette.admin.contract.view.IVHandlerModule;
import com.gite.nouette.admin.contract.view.IVManager;
import com.gite.nouette.admin.contract.view.command.IVCommandCreateModule;
import com.gite.nouette.admin.contract.view.command.IVCommandRemoveModule;
import com.gite.nouette.admin.contract.view.module.IVModuleError;
import com.gite.nouette.admin.contract.view.module.IVModuleLog;
import com.gite.nouette.admin.implementation.view.VAdminImpl;
import com.gite.nouette.admin.implementation.view.VContainerModuleImpl;
import com.gite.nouette.admin.implementation.view.VHandlerModuleImpl;
import com.gite.nouette.admin.implementation.view.VManagerImpl;
import com.gite.nouette.admin.implementation.view.command.VCommandCreateModuleImpl;
import com.gite.nouette.admin.implementation.view.command.VCommandRemoveModuleImpl;
import com.gite.nouette.admin.implementation.view.module.VModuleErrorImpl;
import com.gite.nouette.admin.implementation.view.module.VModuleLogImpl;

public class FactoryViewImpl implements IFactoryView {

	@Override
	public IVAdmin getVAdmin() {
		return new VAdminImpl();
	}

	@Override
	public IVManager getVManager() {
		return new VManagerImpl();
	}

	@Override
	public IVHandlerModule getVHandlerModule() {
		return new VHandlerModuleImpl();
	}

	@Override
	public IVContainerModule getVContainerModule() {
		return new VContainerModuleImpl();
	}

	@Override
	public IVModuleLog getVModuleLog(IVCommand<?>... vCommands) {
		return new VModuleLogImpl(vCommands);
	}

	@Override
	public IVModuleError getVModuleError(IVCommand<?>... vCommands) {
		return new VModuleErrorImpl(vCommands);
	}

	@Override
	public IVCommandCreateModule getVCommandCreateModule() {
		return new VCommandCreateModuleImpl();
	}

	@Override
	public IVCommandRemoveModule getVCommandRemoveModule() {
		return new VCommandRemoveModuleImpl();
	}
}
